
# structure for discrete space
struct DiscreteSpace <: AbstractDiscreteSpace
    dX::Vector{Vector{Interval{Float64}}}
    dim::Int
end

# function to create discrete space from the intervals and number of discrete points
function DiscreteSpace(X::Vector{Interval{Float64}},dx::Vector{Int})
    dim = length(X)
    dX = [mince(X[i],dx[i]) for i in 1:dim]
    return DiscreteSpace(dX, dim)
end